package models

import (
	"time"

	"gorm.io/gorm"
)

// MaWechatUser [...]
type MaWechatUser struct {
	ID              int       `gorm:"autoIncrement:true;primaryKey;column:id;type:int;not null" json:"id" json_old:"ID"`
	NickName        string    `gorm:"column:nick_name;type:varchar(255);not null;default:'';comment:微信昵称" json:"nick_name" json_old:"NickName"`
	Image           string    `gorm:"column:image;type:varchar(200);not null;comment:微信头像链接" json:"image" json_old:"Image"`
	OpenID          string    `gorm:"column:open_id;type:varchar(128);not null;comment:微信唯一标识" json:"open_id" json_old:"OpenID"`
	AddTime         time.Time `gorm:"column:add_time;type:datetime;default:null" json:"-" json_old:"-"`
	AddTimeFormated string    `gorm:"-"  json:"add_time" json_old:"AddTime"`
	Phone           string    `gorm:"column:phone;type:varchar(20);not null;default:'';comment:电话"  json:"phone" json_old:"Phone"`
	MallcooTicket   string    `gorm:"column:mallcoo_ticket;type:varchar(50);default:'';comment:猫酷凭证"  json:"mallcoo_ticket" json_old:"MallcooTicket"`
	UserID          string    `gorm:"column:user_id;type:varchar(30);default:null;comment:账号ID" json:"user_id" json_old:"UserID"`
	Status          int       `gorm:"column:status;type:tinyint(1);default:1;comment: 0未启用 1 开启 2关闭" json:"status" json_old:"Status"`
	CreatedAt       int64     `json:"created_at" gorm:"column:created_at;autoCreateTime;type:int;size:64;comment:创建时间"`
}

func (m *MaWechatUser) AfterFind(tx *gorm.DB) (err error) {
	if !m.AddTime.IsZero() {
		AddTimeByte, _ := DateTime(m.AddTime).MarshalDateTime()
		m.AddTimeFormated = string(AddTimeByte)
	}
	return
}

// TableName get sql table name.获取数据库表名
func (m MaWechatUser) TableName() string {
	return "ma_wechat_user"
}

// 模式自动注册
func init() {
	Models = append(Models, &MaWechatUser{})
}
